/**
 * @file	searchparameter.h
 *			описание перечисления параметров запроса литературных 
 *			карточек из базы данных
 * @date	18.07.2012
 * @author	Казаков А.В.
 */

#if !defined(_SEARCHPARAMETER_H)
#define _SEARCHPARAMETER_H

#include <string>

/**	имя таблицы	*/
#define	S_TABLENAME		"literature"
/**	столбец индекса	*/
#define	S_ID			"id"
/**	заголовок	*/
#define	S_TITLE			"title"
/**	автор	*/
#define	S_AUTHOR		"author"
/**	имя файла	*/
#define	S_FILENAME		"file"
/*	дата добавления в базу	*/
#define	S_ADDDATE		"adddate"
/**	дата опубликования	*/
#define	S_PUBLICDATE	"publicdate"
/**	аннотация	*/
#define	S_ANNOTATION	"annotation"
/**	область	*/
#define	S_SPHERE		"sphere"
/**	подобласть	*/
#define	S_FIELD			"field"
/**	источник	*/
#define	S_SOURCE		"source"
/**	путь к файлу	*/
#define	S_FILEPATH		"path"

/**
 * @enum SearchParameter
 * перечисление параметров для обращения к базе данных
 */
enum SearchParameter 
{
	/**	столбец индекса	*/
	Id = 1,
	/**	заголовок	*/
	Title = 2,
	/**	автор	*/
	Author = 3,
	/**	аннотация	*/
	Word = 4,
	/**	дата опубликования	*/
	PublicDate = 5,
	/*	дата добавления в базу	*/
	AddDate = 6,
	/**	источник	*/
	Source = 7,
	/**	область	*/
	Sphere = 8,
	/**	подобласть	*/
	Field = 9,
	/**	имя файла	*/
	FileName = 10,
	/**	путь к файлу	*/
	FilePath = 11
};

/**
 * получить имя параметра
 * @param sp перечисление параметров из SearchParameter
 * @return строковое название параметра
 */
std::string getSearchParamName(unsigned int sp);

class LiteratureCard;

/**
 * получить значение параметра
 * @param sp перечисление параметров из SearchParameter
 * @param card литературная карточка источника
 * @return значение параметра в виде строки
 */
std::string getSearchParamValue(unsigned int sp, LiteratureCard card);

#endif  //_SEARCHPARAMETER_H
